The present invention relates generally to user interface software run on computers and specifically to a method and apparatus for displaying and executing a progress dialog window inside a software application showing the progress of functions invoked by a user. The progress dialog window is updated while the background function that was invoked by the user is executing.
With the advent of the graphical user interface (GUI) on computer systems came the increasingly common practice of informing a user of the progress of any past or functions invoked by the user within the application. This practice has become popular because it is interactive with the user and keeps the user apprised of how the function or task invoked is progressing. Such a progress indicator has the advantage of informing the user that the function is in fact executing and is progressing to completion and it has the other advantage of letting users know how quickly a particular function may progress and this is particularly useful when a function takes a significant amount of time thus allowing the user to abort the function if necessary.
One problem that has been encountered in implementing progress dialog windows in programs written for execution on the Java.TM. virtual machine is that the non-modal windows provided permit a host application to continue executing even after the dialog window has been created. As a result, the dialog window does not appear on the display monitor until after the user-invoked job (i.e. the job whose progress is intended to be shown in the dialog window) is completed. The progress dialog window could not be updated and painted accordingly on the screen until after the job was complete. Showing the dialog window after the job is complete is of no benefit to the user other than informing the user that the job is completed, for which there are other less intrusive and more efficient methods.
In object oriented systems such as the Java.TM. virtual machine, it is desirable for an application to be capable of displaying a progress dialog window showing updates while the invoked job is running while using the tools provided. The present appliation provides one mechanism for implementing such progress dialog windows.